Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

404
Vistas
Obtenga una vista previa de una "pantalla" en la navegación de composición de jetpack de Android con un PreviewParameter NavController

Descubro Android Cetpack Compose (y Navigation) e intento mostrar una vista previa de una vista con un navController como parámetro.

Para lograrlo, uso PreviewParameter y no tengo ningún error, pero no aparece nada en la ventana de vista previa.

¿Alguien sabe cómo pasar una instancia falsa de NavController a Composable?

 class FakeNavController : PreviewParameterProvider<NavController> { override val values: Sequence<NavController> get() {} } @Preview @Composable fun Preview( @PreviewParameter(FakeNavController::class) fakeNavController: NavController ) { HomeView(fakeNavController) }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

PreviewParameter se usa para crear múltiples vistas previas de la misma vista con diferentes datos. Se espera que devuelva los valores necesarios de values . En su ejemplo, no devuelve nada, por eso no funciona (ni siquiera se compila en mi caso).

Eso no lo ayudará a simular el controlador de navegación, ya que aún necesita crearlo de alguna manera para regresar de values . creo que es imposible

En su lugar, puede pasar un controlador, en este caso no necesita burlarse de él:

 @Composable fun HomeView(openOtherScreen: () -> Unit) { } // your Navigation view composable(Destinations.Home) { from -> HomeView( openOtherScreen = { navController.navigate(Destinations.Other) }, ) }
over 4 years ago · Santiago Trujillo Denunciar

0

No tienes que hacerlo anulable y pasarle nulo. Solo necesitas pasar esto: rememberNavController()

 @Preview @Composable fun Preview() { HomeView(rememberNavController()) }
over 4 years ago · Santiago Trujillo Denunciar

0

Finalmente, declaro un NavController anulable y funciona.

 @Composable fun HomeView(navController: NavController?) { Surface { Column( modifier = Modifier .padding(all = 4.dp) ) { Text( text = "Home View", style = MaterialTheme.typography.body2 ) Spacer(modifier = Modifier.height(8.dp)) Button(onClick = { navController?.navigate("lineRoute") }) { Text(text = "nav to Line view") } } } } @Preview @Composable fun Preview (){ HomeView(null) }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda